<?php

namespace Controller;

class NavController{

	private $m_db = null;
	private $m_loggedin = false;
	private $m_superuser = false;
	private $m_currentUserid = null;
	

	public function __construct(\Model\Database $database) {
		$this->m_db = $database;
	}

	/**
	 * Hanterar att skriva ut rätt saker beroende på om användaren är inloggad, superuser eller utloggad
	 */
	public function DoControll()
	{

		$RegisterController = new \Controller\RegisterController();
		$FileUploadController = new \Controller\FileUploadController();		
		$DeleteController = new \Controller\DeleteController();
		$LoginHandler = new \Model\LoginHandler($this->m_db);

		$PageView = new \View\PageView();

		// Kontrollerar om användaren är inloggad
		if($LoginHandler->IsLoggedIn()){

			$this->m_loggedin = true;
			$this->m_currentUserid = $LoginHandler->GetCurrentUserId();

			// Kontrollerar om användaren är superuser och skapar HTML för en superuser
			if($LoginHandler->IsSuperUser()){
				
				$this->m_superuser = true;

				$register = $RegisterController->DoControll($this->m_db, $this->m_loggedin, $this->m_superuser);
				$upload = $FileUploadController->DoControll($this->m_db, $this->m_loggedin, $this->m_superuser, $this->m_currentUserid);

				$delete = $DeleteController->DoControll($this->m_db, $this->m_loggedin, $this->m_superuser);

				$html = $PageView->GetSuperUserHTML($register, $upload, $delete);
			}
			// Om användaren är inloggad men inte superuser
			else{
				$fileArray = $FileUploadController->DoControll($this->m_db, $this->m_loggedin, $this->m_superuser, $this->m_currentUserid);
				$html = $PageView->GetUserHTML($fileArray);
			}
		}
		else{
			$html = $PageView->GetGuideHTML();
		}
		return $html;
	}
}